In Voice over Internet Protocol (VoIP) networks, interworking various supplementary services may be necessary. For example, one service is a redirect, which is commonly used in VoIP networks including session initiation protocol (SIP) and H.323 networks. Typically, a session border controller (SBC) may receive a call request from a first end device for a second end device. A redirect server is used to keep track of addresses for various end devices. The call request is sent to the redirect server, which can then determine the correct address for the end device. In cases where a call is redirected, the redirect service sends back a redirect message with a third end device's address. One of the main functions of an SBC is to provide address hiding. Address hiding is where each side of the communication does not know the other side's address. Thus, the SBC keeps track of each end device's address. When the SBC sends communications to end devices, the SBC's address is included as a respond-to address instead of the other end device's address.
When the SBC gets a redirect to the third end device, the SBC may not just redirect the call request to the third end device. Rather, the SBC may have to send a message back to the first end device such that the first end device can decide whether it wants to initiate a call to the third end device. Reasons that the first end device may not want the call directly redirected may be because the redirection may be to an international call or may be a long-distance call where the first call to the second device was a local call. When the SBC sends the message back to the first device, the SBC includes its own address as a respond-to address. The message also indicates that a redirect to a third end device is requested. If the first end device wants to initiate a call to the third end device, then an invite for the third end device is sent to the SBC. This is treated as a new invite and it is sent to the redirect server again. The redirect server then responds with another redirect message. Since this is another redirect, the SBC will send another message back to the first end device. This causes an infinite loop that does not redirect the call to the third end device.
Further, if the third end device's address is included in the message back to the first end device, this would break the address hiding, which is one of the main functionalities of the SBC. This may cause security issues in that the first end device may end up establishing a call directly to the third end device and bypassing the SBC. This may cause potential revenue loss and also may cause security issues in bypassing the SBC. Further, the call may fail because the first end device is not configured to make direct connections.